//
//  BaseTVPresenter.swift
//  NewDelivery
//
//  Created by 天下宅 on 2016/11/7.
//  Copyright © 2016年 天下宅. All rights reserved.
//

import UIKit
import MJRefresh
class BaseTVPresenter: NSObject,UITableViewDelegate,UITableViewDataSource {
    unowned var tableView:UITableView
    unowned var vc:BaseVC
    //
    var contents:[Any]?
    {
        didSet{
            self.tableView.reloadData()
        }
    }
    
    var isRefresh = false
    {
        didSet{
            tableView.mj_header = isRefresh ? MJRefreshNormalHeader.init(refreshingTarget: self, refreshingAction: #selector(refresh)) : nil
        }
    }
    var isLoadMore = false
    {
        didSet{
            
            let footer = MJRefreshAutoNormalFooter.init(refreshingTarget: self, refreshingAction: #selector(loadMore))
            footer!.isAutomaticallyRefresh = false
            tableView.mj_footer = isLoadMore ? footer : nil
        }
    }
    

    convenience init(WithTV tv:UITableView, tvc:BaseVC) {
        self.init(tv,tvc:tvc)
        self.setupTableView()
    }
    
    init(_ tv:UITableView, tvc:BaseVC) {
        tableView = tv
        vc = tvc
    }
    
    func refresh()  {
        
    }
    
    func loadMore()  {
        
    }
    
    func setupTableView()  {
        self.tableView.separatorStyle = .none
        tableView.delegate = self
        tableView.dataSource = self
        tableView.reloadData()
        self.tableView.estimatedRowHeight = 60;
        self.tableView.rowHeight = UITableViewAutomaticDimension;
//        self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return contents?.count ?? 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        return nil
    }
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 0
    }
    
//    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
//        return 60
//    }
}
